package plan;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class Estado {
	private Estado pai = null;
	private Acoe aresta = null;
	private int custo = Integer.MAX_VALUE;
	
	//heuristica simple
	private int h = 0; // número de proposicoes que faltam
	private int g = 0; // altura
	
	//heuristica HSP
	
	
	
	private List<Integer> proposicoes = new ArrayList<Integer>();

	public List<Integer> getProposicoes() {
		return proposicoes;
	}

	public void setProposicoes(List<Integer> proposicoes) {
		this.proposicoes = proposicoes;
	}

	public Estado getPai() {
		return pai;
	}

	public void setPai(Estado pai) {
		this.pai = pai;
	}	
	
	// para penalizar quem nao tem alguma solucao de meta
	public int funcaoHeuristica() {
		return h*10 + g;
	}
	
	

	
	
	
	

	public int getH() {
		return h;
	}

	public void setH(int h) {
		this.h = h;
	}

	public int getG() {
		return g;
	}

	public void setG(int g) {
		this.g = g;
	}
	
	public int paiAltura() {
		if(pai == null)
			return 0;
		return pai.getPai().getG();
	}

	public Acoe getAresta() {
		return aresta;
	}

	public void setAresta(Acoe aresta) {
		this.aresta = aresta;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return this.proposicoes.toString();
	}


	public int getCusto() {
		return custo;
	}

	public void setCusto(int custo) {
		this.custo = custo;
	}

	

}
